﻿using System.Collections.Generic;
using System.Threading.Tasks;
using ZSoftInstagram.Domain.Board;
using ZSoftInstagram.Domain.User;
using ZSoftInstagram.UI.ViewModels;

namespace ZSoftInstagram.Services.Abstraction
{
    public interface IPinService: IEntityService<ImagePin>
    {
        Task<int> CreateAsync(PinCreateModel model);
        void PinToBoard(ApplicationUser pinner, PinBoard board,  Pin item);
        void RemoveFromBoard(Pin pin);
        void DeletePin(PinDeleteModel pin);
        Task<int> DeleteAsync(PinDeleteModel model);
        Task<int> AddLikeAsync(AddLikeModel model, int userId);
        Task<int> RepinAsync(RePinModel model, int userId);
        Task<List<PinViewModel>> GetByTagAsync(string[] tags);
    }
}
